package function

// ==================
// function-function: 函数相关功能
// ==================

type (
	Predicate[T any]          func(T) bool
	Predicate2[T, T2 any]     func(T, T2) bool
	Predicate3[T, T2, T3 any] func(T, T2, T3) bool
	Function[T, E any]        func(T) E
	Consumer[T any]           func(T)
	Consumer2[T, U any]       func(T, U)
	Supplier[T any]           func() T
	BiConsumer[T, E any]      func(T, E)
	BiFunction[T, U, R any]   func(T, U) R
	BiPredicate[T, U any]     func(T, U)
	BooleanSupplier           func() bool
	DoubleBinaryOperator      func(left, right float64) float64
	DoubleConsumer            func(value float64)
	DoubleFunction[R any]     func(value float64) R
	DoublePredicate           func(value float64) bool
	DoubleSupplier            func() float64
	DoubleToIntFunction       func(value float64) int
	DoubleToLongFunction      func(value float64) int64
)
